package com.springdoor.goods.mapper;

import java.util.List;
import com.springdoor.goods.domain.SprdGoodsMain;
import com.springdoor.goods.domain.SprdGoodsConfig;

/**
 * 商品主体信息Mapper接口
 *
 * @author llshs
 * @date 2024-05-21
 */
public interface SprdGoodsMainMapper
{
    /**
     * 查询商品主体信息
     *
     * @param goodsId 商品主体信息主键
     * @return 商品主体信息
     */
    public SprdGoodsMain selectSprdGoodsMainByGoodsId(Long goodsId);

    /**
     * 根据 商品编码 查询商品主体
     * @param gNumber
     * @return
     */
    public SprdGoodsMain selectSprdGoodsMainByGNumber(String gNumber);

    /**
     * 查询商品主体信息列表
     *
     * @param sprdGoodsMain 商品主体信息
     * @return 商品主体信息集合
     */
    public List<SprdGoodsMain> selectSprdGoodsMainList(SprdGoodsMain sprdGoodsMain);

    /**
     * 新增商品主体信息
     *
     * @param sprdGoodsMain 商品主体信息
     * @return 结果
     */
    public int insertSprdGoodsMain(SprdGoodsMain sprdGoodsMain);

    /**
     * 修改商品主体信息
     *
     * @param sprdGoodsMain 商品主体信息
     * @return 结果
     */
    public int updateSprdGoodsMain(SprdGoodsMain sprdGoodsMain);

    /**
     * 删除商品主体信息
     *
     * @param gNumber 商品编码
     * @return 结果
     */
    public int deleteSprdGoodsMainByGnumber(String gNumber);

    /**
     * 批量删除商品主体信息
     *
     * @param gNumbers 需要删除的商品编码集合
     * @return 结果
     */
    public int deleteSprdGoodsMainByGnumbers(String[] gNumbers);

    /**
     * 查询最大顺序值
     *
     * @param assNumber 关联商品编码
     * @return 结果+1
     */
    public Integer findMaxOrderNum(String assNumber);

    public List<SprdGoodsMain> selectAssGoodsByGnumber(String gNumber);

    /**
     * 查询不在库中的商品
     * @param sprdGoodsMain
     * @return
     */
    public List<SprdGoodsMain> selectGoodsMainListNotinShop(SprdGoodsMain sprdGoodsMain);
}
